{
  "meta": {
    "docsUrl": "https://v2.quasar.dev/vue-components/intersection"
  },

  "props": {
    "tag": {
      "extends": "tag",
      "default": "div",
      "examples": [ "div", "span", "blockquote" ]
    },

    "once": {
      "type": "Boolean",
      "desc": "Get triggered only once",
      "category": "behavior"
    },

    "ssr-prerender": {
      "type": "Boolean",
      "desc": "Pre-render content on server side if using SSR (use it to pre-render above the fold content)",
      "category": "behavior"
    },

    "root": {
      "type": [ "Element", "null" ],
      "default": null,
      "desc": "[Intersection API root prop] Lets you define an alternative to the viewport as your root (through its DOM element); It is important to keep in mind that root needs to be an ancestor of the observed element",
      "examples": [ "$refs.myTable.$el", "getElementById(\"myTable\")" ],
      "category": "behavior"
    },

    "margin": {
      "type": "String",
      "desc": "[Intersection API rootMargin prop] Allows you to specify the margins for the root, effectively allowing you to either grow or shrink the area used for intersections",
      "examples": [ "-20px 0px", "10px 20px 30px 40px" ],
      "category": "behavior"
    },

    "threshold": {
      "type": [ "Array", "Number" ],
      "desc": "[Intersection API threshold prop] Threshold(s) at which to trigger, specified as a ratio, or list of ratios, of (visible area / total area) of the observed element",
      "examples": [
        "[ 0, 0.25, 0.5, 0.75, 1 ]",
        ":threshold=\"1\""
      ],
      "category": "behavior"
    },

    "transition": {
      "extends": "transition",
      "category": "behavior"
    },

    "transition-duration": {
      "type": [ "String", "Number" ],
      "desc": "Transition duration (in milliseconds, without unit)",
      "default": 300,
      "category": "behavior",
      "addedIn": "v2.3.1"
    },

    "disable": {
      "type": "Boolean",
      "desc": "Disable visibility observable (content will remain as it was, visible or hidden)",
      "category": "behavior"
    }
  },

  "slots": {
    "default": {
      "extends": "default"
    },

    "hidden": {
      "desc": "Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function",
      "addedIn": "v2.12.0"
    }
  },

  "events": {
    "visibility": {
      "desc": "Fires when visibility changes",
      "params": {
        "isVisible": {
          "type": "Boolean",
          "desc": "Visibility status (true/false)"
        }
      }
    }
  }
}
